home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1999 / MacHack 1999.toast / Presentations / STL & Modern C++ / STL1.cp < prev    next >
Encoding:
Text File  |  1999-06-25  |  1022 b   |  41 lines  |  [TEXT/CWIE]

  1. // STL1.cp
  2. #include <iostream>
  3. #include <cstddef>
  4. #include <cassert>
  5.  
  6. int    ANSICqsortCompare(const void *el1, const void *el2)
  7. {
  8.     return (int)(*(long *)el1 - *(long *)el2);
  9. }
  10.  
  11. int main()
  12. {
  13.     std::cout << "STL sort sample!" << std::endl << std::endl;    // setting up arrays
  14.     const    std::size_t    aSize = 102400;
  15.     long    *qArray = new long[aSize];
  16.     long    *stlArray = new long[aSize];
  17.     assert(qArray && stlArray);
  18.  
  19.     std::srand(std::time(NULL));                    // randomize
  20.     for (int i = 0; i < aSize; ++i)
  21.     {
  22.         qArray[i] = stlArray[i] = std::rand();
  23.     }
  24.  
  25.     long    qsortTickStart = std::clock();            // ANSI sort
  26.     std::qsort(qArray, aSize, sizeof(long), ANSICqsortCompare);
  27.     long    qTix = std::clock() - qsortTickStart;
  28.  
  29.     long    stlTickStart = std::clock();            // STL sort
  30.     std::sort(stlArray, &stlArray[aSize]);
  31.     long    stlTix = std::clock() - stlTickStart;
  32.  
  33.     for (int i = 0; i < aSize; ++i)                    // verify
  34.     {
  35.         assert(qArray[i] == stlArray[i]);
  36.     }
  37.     std::cout << "qsort() " << qTix << "\nSTL sort " << stlTix << "\n";
  38.     delete [] qArray; delete [] stlArray;
  39. }
  40.  
  41.